Data center architecture has been evolving rapidly over the last decade. This includes changes to the data center architecture for systems including one or more NoSQL data servers (also referred to as NoSQL data stores). Each customer can have different data center architectures for specific application(s).
Typically there are four tiers in a data center architecture that also uses a NoSQL data store. The four tiers are: web tier comprising front end web servers, application tier comprising application servers, data tier comprising database servers, and storage tier. FIG. 1 shows a typical architecture of data center for an Internet company (e.g., Yahoo, LinkedIn, eBay, etc.) comprising the four tiers. The dotted lines separate different tiers of servers based on their functional attributes related to specific data center architecture.
In the data center architecture of FIG. 1, the application servers are responsible for running the business or application logic. The storage tier is accessed via database servers, such as the NoSQL servers of FIG. 1. These NoSQL servers act as access medium to the NoSQL data stores. Application logic accesses the NoSQL data store to manage data. Below are the typical steps involved in retrieving required (READ operation) data from a data store:                1. Application logic wants a specific data that is associated with a key. The application, for example, speaks JavaScript Object Notation (JSON).        2. Application will open a connection to the NoSQL data server and request the data associated with that key.        3. If the NoSQL data server speaks another format, e.g., Binary JSON (BSON), then application server needs to convert its request to BSON first (or NoSQL server needs to parse JSON).        4. The NoSQL server will now check if the data associated with the key is available in its local cache, if not it will fetch it from the persistent storage.        5. In case NoSQL server has to fetch from the persistent storage, it needs to resolve if the key points to a secondary index or primary index. If it is a secondary index, then it needs to be converted to primary index.        6. Finally the data is now retrieved either from local cache or persistent storage and returned to the application logic.        
This approach suffers from several possible bottlenecks that limit efficient scaling of application deployment using NoSQL data stores. Accordingly, improved approaches to the NoSQL data center architecture are desirable.